package com.synnex.mobile.servier.core.updateTime.service.impl;

import com.synnex.mobile.generic.core.util.ObjectUtil;
import com.synnex.mobile.servier.core.service.impl.AbstractServiceImpl;
import com.synnex.mobile.servier.core.updateTime.bo.UpdateTime;
import com.synnex.mobile.servier.core.updateTime.bo.UpdateTimeCriterion;
import com.synnex.mobile.servier.core.updateTime.dao.UpdateTimeDao;
import com.synnex.mobile.servier.core.updateTime.dto.UpdateTimeDTO;
import com.synnex.mobile.servier.core.updateTime.service.UpdateTimeService;

import java.util.List;

/**
 * Created with IntelliJ IDEA.
 * User: kerryf
 * To change this template use File | Settings | File Templates.
 */
public class UpdateTimeServiceImpl extends AbstractServiceImpl implements UpdateTimeService {

    protected UpdateTimeDao updateTimeDao;

    public void setUpdateTimeDao(UpdateTimeDao updateTimeDao) {
        this.updateTimeDao = updateTimeDao;
    }


    public void saveUpdateTime(UpdateTime updateTime) {

        UpdateTimeDTO updateTimeDTO = ObjectUtil.copyProperties(updateTime, UpdateTimeDTO.class);
        updateTimeDao.saveUpdateTimeDTO(updateTimeDTO);
    }

    public UpdateTime getUpdateTime(UpdateTimeCriterion criterion) {

        UpdateTimeDTO temp = ObjectUtil.copyProperties(criterion, UpdateTimeDTO.class);
        List<UpdateTimeDTO> data = updateTimeDao.getUpdateTimeDTO(temp);
        if (null != data && data.size() > 0) {
            if(data.size()>1){
                for(int i=0;i<data.size()-1;i++){
                    updateTimeDao.deleteUpdateTime(data.get(i));
                    }
                }
            return UpdateTime.createInstance(data.get(data.size()-1));
        }
         else {
            return null;
        }

    }

    public void modifyUpdateTimeDTO(UpdateTime updateTime) {

        UpdateTimeDTO updateTimeDTO = ObjectUtil.copyProperties(updateTime, UpdateTimeDTO.class);
        updateTimeDao.modifyUpdateTimeDTO(updateTimeDTO);
    }
}
